using System;

namespace AuthorizeNET {
	public class ExtendedDetails : INameValueSerializable {

		private string po_num;
		private double tax;
		private double freight;
		private double duty;
		private bool tax_exempt;

		public ExtendedDetails(string po_num, double tax, double freight, double duty, bool tax_exempt) {
			this.po_num = po_num;
			this.tax = tax;
			this.freight = freight;
			this.duty = duty;
			this.tax_exempt = tax_exempt;
		}

		public ExtendedDetails()
			: this(string.Empty, 0, 0, 0, false) { }

		[KeyName("x_po_num")]
		public string PurchaseOrderNumber {
			get { return (this.po_num); }
			set { this.po_num = value; }
		}

		[KeyName("x_tax")]
		public double Tax {
			get { return (this.tax); }
			set { this.tax = value; }
		}

		[KeyName("x_freight")]
		public double Freight {
			get { return (this.freight); }
			set { this.freight = value; }
		}

		[KeyName("x_duty")]
		public double Duty {
			get { return (this.duty); }
			set { this.duty = value; }
		}

		[KeyName("x_tax_exempt")]
		public bool TaxExempt {
			get { return (this.tax_exempt); }
			set { this.tax_exempt = value; }
		}


	}
}
